package com.egao.common.module.world.entity;
import cn.hutool.core.date.DatePattern;
import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.util.Date;

/**
 * 济世杯学生报名
 * @author root
 */
@ApiModel(description = "济世杯学生报名")
@Data
@TableName("world_game_student")
public class WorldGameStudent implements Serializable {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty("主键编号")
    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;

    @ApiModelProperty("济世杯ID")
    private Integer worldGameId;

    @ApiModelProperty("学生ID")
    private Integer studentId;

    @ApiModelProperty(value = "报名状态", notes = "0成功 1取消 2审核不通过 3待审核")
    private String state;

    @ApiModelProperty(value = "比赛状态", notes = "1报名 2复赛 3决赛")
    private String gameState;

    @ApiModelProperty(value = "获奖级别", notes =" 1 一等奖，2 二等奖，3 三等奖，4 优秀奖")
    private String prizeLevel;

    @ApiModelProperty("得分")
    private Integer score;

    @ApiModelProperty("备注")
    private String remarks;

    @ApiModelProperty("评奖人")
    private Integer prizeBy;

    @ApiModelProperty("评奖时间")
    private Date prizeTime;

    @ApiModelProperty("学生上传附件名称")
    private String fileName;

    @ApiModelProperty("学生上传附件地址")
    private String fileUrl;

    @ApiModelProperty("审核备注")
    private String stateContent;

    @ApiModelProperty("审核时间")
    private Date stateTime;

    @ApiModelProperty("取消备注")
    private String cancelContent;

    @ApiModelProperty("取消时间")
    private Date cancelTime;

    @ApiModelProperty("签到状态 0签到 1未签到")
    private String sign;

    @ApiModelProperty("签到时间")
    private Date signDate;

    @ApiModelProperty("报名时间")
    private Date createTime;

    @ApiModelProperty("逻辑删除 0正常 1删除")
    @TableLogic
    private Integer deleted;


    @ApiModelProperty("济世杯标题")
    @TableField(exist = false)
    private String title;

    @ApiModelProperty("开始时间")
    @TableField(exist = false)
    @JsonFormat(pattern = DatePattern.NORM_DATETIME_PATTERN)
    private Date startTime;

    @ApiModelProperty("结束时间")
    @TableField(exist = false)
    @JsonFormat(pattern = DatePattern.NORM_DATETIME_PATTERN)
    private Date endTime;

    @ApiModelProperty("截止报名时间")
    @TableField(exist = false)
    @JsonFormat(pattern = DatePattern.NORM_DATETIME_PATTERN)
    private Date closeTime;

    @ApiModelProperty("济世杯举办地点")
    @TableField(exist = false)
    private String address;

    @ApiModelProperty("学号")
    @TableField(exist = false)
    private String xh;

    @ApiModelProperty("姓名")
    @TableField(exist = false)
    private String xm;

    @ApiModelProperty("性别")
    @TableField(exist = false)
    private String xb;

    @ApiModelProperty("学院")
    @TableField(exist = false)
    private String collegeName;

    @ApiModelProperty("专业")
    @TableField(exist = false)
    private String majorName;

    @ApiModelProperty("政治面貌")
    @TableField(exist = false)
    private String zzmm;

    @ApiModelProperty("手机号")
    @TableField(exist = false)
    private String mobile;
}
